locking code with mutex